home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / real3d-2.000 / real.mst < prev    next >
Text File  |  1996-04-08  |  11KB  |  265 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST BADPATH       = 6400
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL DEST$        ''Default destination directory.
  24.  
  25. DECLARE SUB Install
  26. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  27.  
  28.  
  29. INIT:
  30.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  31.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  32.  
  33.     SetBitmap CUIDLL$, LOGO
  34.     SetTitle "Real 3D Setup"
  35.  
  36.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  37.     IF szInf$ = "" THEN
  38.         szInf$ = GetSymbolValue("STF_CWDDIR") + "REAL.INF"
  39.     END IF
  40.     ReadInfFile szInf$
  41.  
  42.     OPTCUR$ = "1"
  43.     DEST$ = "C:\REAL"
  44.  
  45. '$IFDEF DEBUG
  46.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  47.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  48.     IF IsDriveValid(WinDrive$) = 0 THEN
  49.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONEXCLAMATION+MB_OK)
  50.         GOTO QUIT
  51.     END IF
  52. '$ENDIF ''DEBUG
  53.  
  54.  
  55. WELCOME:
  56.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  57.     IF sz$ = "CONTINUE" THEN
  58.         UIPop 1
  59.     ELSE
  60.         GOSUB ASKQUIT
  61.         GOTO WELCOME
  62.     END IF
  63.  
  64.  
  65. GETPATH:
  66.     SetSymbolValue "EditTextIn", DEST$
  67.     SetSymbolValue "EditFocus", "END"
  68. GETPATHL1:
  69.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  70.     DEST$ = GetSymbolValue("EditTextOut")
  71.  
  72.     IF sz$ = "CONTINUE" THEN
  73.         IF IsDirWritable(DEST$) = 0 THEN
  74.             GOSUB BADPATH
  75.             GOTO GETPATHL1
  76.         END IF
  77.         UIPop 1
  78.     ELSEIF sz$ = "REACTIVATE" THEN
  79.         GOTO GETPATHL1
  80.     ELSEIF sz$ = "BACK" THEN
  81.         UIPop 1
  82.         GOTO GETPATH
  83.     ELSE
  84.         GOSUB ASKQUIT
  85.         GOTO GETPATH
  86.     END IF
  87.  
  88.  
  89.     Install
  90.  
  91.  
  92. QUIT:
  93.     ON ERROR GOTO ERRQUIT
  94.  
  95.     IF ERR = 0 THEN
  96.         dlg% = EXITSUCCESS
  97.     ELSEIF ERR = STFQUIT THEN
  98.         dlg% = EXITQUIT
  99.     ELSE
  100.         dlg% = EXITFAILURE
  101.     END IF
  102. QUITL1:
  103.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  104.     IF sz$ = "REACTIVATE" THEN
  105.         GOTO QUITL1
  106.     END IF
  107.     UIPop 1
  108.  
  109.     END
  110.  
  111. ERRQUIT:
  112.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  113.     END
  114.  
  115. BADPATH:
  116.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  117.     IF sz$ = "REACTIVATE" THEN
  118.         GOTO BADPATH
  119.     END IF
  120.     UIPop 1
  121.     RETURN
  122.  
  123. ASKQUIT:
  124.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  125.  
  126.     IF sz$ = "EXIT" THEN
  127.         UIPopAll
  128.         ERROR STFQUIT
  129.     ELSEIF sz$ = "REACTIVATE" THEN
  130.         GOTO ASKQUIT
  131.     ELSE
  132.         UIPop 1
  133.     END IF
  134.     RETURN
  135.  
  136.  
  137. '**
  138. '** Purpose:
  139. '**     Builds the copy list and performs all installation operations.
  140. '** Arguments:
  141. '**     none.
  142. '** Returns:
  143. '**     none.
  144. '*************************************************************************
  145. SUB Install STATIC
  146.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  147.     CreateDir DEST$, cmoNone
  148.  
  149.     CreateDir DEST$ + "\PROJECTS", cmoNone
  150.     CreateDir DEST$ + "\OBJECTS", cmoNone
  151.     CreateDir DEST$ + "\ENV", cmoNone
  152.     CreateDir DEST$ + "\MACROS", cmoNone
  153.     CreateDir DEST$ + "\IMAGES", cmoNone
  154.     CreateDir DEST$ + "\MATPREV", cmoNone
  155.     CreateDir DEST$ + "\TEXTURES", cmoNone
  156.     CreateDir DEST$ + "\BUMPMAPS", cmoNone
  157.     CreateDir DEST$ + "\BUMPMAPS\WAVESEQ", cmoNone
  158.     CreateDir DEST$ + "\MATERIAL", cmoNone
  159.     CreateDir DEST$ + "\ANIM", cmoNone
  160.     CreateDir DEST$ + "\COLORS", cmoNone
  161.     CreateDir DEST$ + "\RPL", cmoNone
  162.     CreateDir DEST$ + "\TUBEFONT", cmoNone
  163.     CreateDir DEST$ + "\REALFONT", cmoNone
  164.     CreateDir DEST$ + "\EXAMPLES", cmoNone
  165.     CreateDir DEST$ + "\EXAMPLES\ANIM", cmoNone
  166.     CreateDir DEST$ + "\EXAMPLES\BOOLEAN", cmoNone
  167.     CreateDir DEST$ + "\EXAMPLES\FREEFORM", cmoNone
  168.     CreateDir DEST$ + "\DELTA", cmoNone
  169.  
  170.     AddSectionFilesToCopyList "Executables", SrcDir$, DEST$
  171.     CopyFilesInCopyList
  172.  
  173.     i% = DoMsgBox("Please insert Real 3D Disk 3 in drive", "Change Disk", MB_TASKMODAL+MB_ICONEXCLAMATION+MB_OK)
  174.     AddSectionFilesToCopyList "Exec2", SrcDir$, DEST$
  175.     AddSectionFilesToCopyList "Macros", SrcDir$, DEST$ + "\macros"
  176.     AddSectionFilesToCopyList "Rpl", SrcDir$, DEST$ + "\rpl"
  177.     AddSectionFilesToCopyList "Sys", SrcDir$, DEST$ + "\rpl\sys"
  178.     AddSectionFilesToCopyList "Textures", SrcDir$, DEST$ + "\textures"
  179.     AddSectionFilesToCopyList "Bumpmaps", SrcDir$, DEST$ + "\bumpmaps"
  180.     AddSectionFilesToCopyList "Waveseq", SrcDir$, DEST$ + "\bumpmaps\waveseq"
  181.     AddSectionFilesToCopyList "Objects", SrcDir$, DEST$ + "\objects"
  182.     AddSectionFilesToCopyList "MatPrev", SrcDir$, DEST$ + "\matprev"
  183.     AddSectionFilesToCopyList "Projects", SrcDir$, DEST$ + "\projects"
  184.     AddSectionFilesToCopyList "Tubefont", SrcDir$, DEST$ + "\tubefont"
  185.     AddSectionFilesToCopyList "Startup", SrcDir$, DEST$
  186.     AddSectionFilesToCopyList "Boolean", SrcDir$, DEST$ + "\examples\boolean"
  187.     AddSectionFilesToCopyList "Freeform", SrcDir$, DEST$ + "\examples\freeform"
  188. '    AddSectionFilesToCopyList "Animexmp", SrcDir$, DEST$ + "\examples\animatio"
  189. '    AddSectionFilesToCopyList "Images", SrcDir$, DEST$ + "\images"
  190.     CopyFilesInCopyList
  191.  
  192.     i% = DoMsgBox("Please insert Real 3D Disk 4 in drive", "Change Disk", MB_TASKMODAL+MB_ICONEXCLAMATION+MB_OK)
  193.     AddSectionFilesToCopyList "Help", SrcDir$, DEST$
  194.     AddSectionFilesToCopyList "Realfont", SrcDir$, DEST$ + "\realfont"
  195.     AddSectionFilesToCopyList "Delta", SrcDir$, DEST$ + "\delta"
  196.     AddSectionFilesToCopyList "Anim", SrcDir$, DEST$ + "\examples\anim"
  197.     CopyFilesInCopyList
  198.  
  199.     i% = DoMsgBox("Please insert Real 3D Disk 5 in drive", "Change Disk", MB_TASKMODAL+MB_ICONEXCLAMATION+MB_OK)
  200.     AddSectionFilesToCopyList "Images", SrcDir$, DEST$ + "\images"
  201.     CopyFilesInCopyList
  202.     
  203.     ini$ = MakePath(DEST$, "REAL.INI")
  204.     ini$ = MakePath(GetWindowsDir, "REAL.INI")
  205.     CreateIniKeyValue ini$, "Paths", "Projects", DEST$ + "\PROJECTS", cmoOverwrite
  206.     CreateIniKeyValue ini$, "Paths", "Objects", DEST$ + "\OBJECTS", cmoOverwrite
  207.     CreateIniKeyValue ini$, "Paths", "Environment", DEST$ + "\ENV", cmoOverwrite
  208.     CreateIniKeyValue ini$, "Paths", "Macros", DEST$ + "\MACROS", cmoOverwrite
  209.     CreateIniKeyValue ini$, "Paths", "Images", DEST$ + "\IMAGES", cmoOverwrite
  210.     CreateIniKeyValue ini$, "Paths", "Textures", DEST$ + "\TEXTURES", cmoOverwrite
  211.     CreateIniKeyValue ini$, "Paths", "Materials", DEST$ + "\MATERIAL", cmoOverwrite
  212.     CreateIniKeyValue ini$, "Paths", "Animations", DEST$ + "\ANIM", cmoOverwrite
  213.     CreateIniKeyValue ini$, "Paths", "Colors", DEST$ + "\COLORS", cmoOverwrite
  214.     CreateIniKeyValue ini$, "Paths", "Rpl", DEST$ + "\RPL", cmoOverwrite
  215.  
  216.     CreateIniKeyValue ini$, "Paths", "RplPaths", DEST$ + "\RPL;" + DEST$ + "\MACROS", cmoOverwrite
  217.     CreateIniKeyValue ini$, "Paths", "TexturesPaths", DEST$ + "\TEXTURES;" + DEST$ + "\BUMPMAPS;" + DEST$ + "\MATPREV", cmoOverwrite
  218.  
  219.     CreateIniKeyValue ini$, "Fonts", "Normal", "-17,0,0,0,400,0,0,0,0,3,2,1,34,Arial", cmoNone
  220.     CreateIniKeyValue ini$, "Fonts", "Italic", "-17,0,0,0,400,255,0,0,0,3,2,1,34,Arial", cmoNone
  221.     CreateIniKeyValue ini$, "Fonts", "Bold", "-17,0,0,0,700,0,0,0,0,3,2,1,34,Arial",  cmoNone
  222.     CreateIniKeyValue ini$, "Fonts", "BoldItalic", "-17,0,0,0,700,255,0,0,0,3,2,1,34,Arial", cmoNone
  223.  
  224.     CreateProgmanGroup "Real 3D Demo", "", cmoNone
  225.     ShowProgmanGroup   "Real 3D Demo", 1, cmoNone
  226.     CreateProgmanItem  "Real 3D Demo", "Real 3D", MakePath(DEST$,"REALDEMO.EXE") + " ", "", cmoOverwrite
  227.     CreateProgmanItem  "Real 3D Demo", "Ballbear", MakePath(DEST$,"REALDEMO.EXE") + " projects\ballbear.prj", "", cmoOverwrite
  228.     CreateProgmanItem  "Real 3D Demo", "Dice", MakePath(DEST$,"REALDEMO.EXE") + " projects\dice.prj", "", cmoOverwrite
  229.     CreateProgmanItem  "Real 3D Demo", "Girl", MakePath(DEST$,"REALDEMO.EXE") + " projects\girl.prj", "", cmoOverwrite
  230.     CreateProgmanItem  "Real 3D Demo", "Glass", MakePath(DEST$,"REALDEMO.EXE") + " projects\glass.prj", "", cmoOverwrite
  231.     CreateProgmanItem  "Real 3D Demo", "Simple", MakePath(DEST$,"REALDEMO.EXE") + " projects\simple.prj", "", cmoOverwrite
  232.     CreateProgmanItem  "Real 3D Demo", "Girl Obj", MakePath(DEST$,"REALDEMO.EXE") + " objects\girl.obj", "", cmoOverwrite
  233.     CreateProgmanItem  "Real 3D Demo", "Head Obj", MakePath(DEST$,"REALDEMO.EXE") + " objects\head1.obj", "", cmoOverwrite
  234.     CreateProgmanItem  "Real 3D Demo", "Head&Hat Obj", MakePath(DEST$,"REALDEMO.EXE") + " objects\head_hat.obj", "", cmoOverwrite
  235.     CreateProgmanItem  "Real 3D Demo", "ShowImg", MakePath(DEST$,"SHOWIMG.EXE"), "", cmoOverwrite
  236.     CreateProgmanItem  "Real 3D Demo", "Picture Show", MakePath(DEST$,"SHOWIMG.EXE") + " /d5 /s " + MakePath(DEST$, "images\*.bmp"), "", cmoOverwrite
  237.     CreateProgmanItem  "Real 3D Demo", "Delta Play", MakePath(DEST$,"DELTA\DPLAY.EXE"), "", cmoOverwrite
  238.     CreateProgmanItem  "Real 3D Demo", "Walk Delta", MakePath(DEST$,"DELTA\DPLAY.EXE") + " " + MakePath(DEST$, "delta\walk2.dlt"), "", cmoOverwrite
  239.     CreateProgmanItem  "Real 3D Demo", "Run Delta", MakePath(DEST$,"DELTA\DPLAY.EXE") + " " + MakePath(DEST$, "delta\run.dlt"), "", cmoOverwrite
  240.     CreateProgmanItem  "Real 3D Demo", "ReadMe", "notepad "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  241. END SUB
  242.  
  243.  
  244. '**
  245. '** Purpose:
  246. '**     Appends a file name to the end of a directory path,
  247. '**     inserting a backslash character as needed.
  248. '** Arguments:
  249. '**     szDir$  - full directory path (with optional ending "\")
  250. '**     szFile$ - filename to append to directory
  251. '** Returns:
  252. '**     Resulting fully qualified path name.
  253. '*************************************************************************
  254. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  255.     IF szDir$ = "" THEN
  256.         MakePath = szFile$
  257.     ELSEIF szFile$ = "" THEN
  258.         MakePath = szDir$
  259.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  260.         MakePath = szDir$ + szFile$
  261.     ELSE
  262.         MakePath = szDir$ + "\" + szFile$
  263.     END IF
  264. END FUNCTION
  265.